package com.tbit.uqbike.client.service;

import com.tbit.uqbike.center.pojo.MachineStatus;
import com.tbit.uqbike.client.pojo.*;
import com.tbit.uqbike.client.pojo.newEntity.Forbidden;

import java.util.List;

/**
 * 校准service
 *
 * @author Leon
 * 2017年2月24日 下午4:09:17
 */
public interface CalibrateService {
    /**
     * 单个校准
     *
     * @param
     * @param mapType
     */
    void calibrateOffSet(TerPosition terPosition, int mapType);

    /**
     * 校准
     *
     * @param machineStatus
     * @param mapType
     */
    void calibrateOffSet(MachineStatus machineStatus, int mapType);

    /**
     * 轨迹校准
     *
     * @param terPositions
     * @param mapType
     */
    void calibrateOffSet(List<TerPosition> terPositions, int mapType);

    /**
     * 停车点数据校准
     *
     * @param parkPoint
     * @param mapType
     */
    void celibrateParkPoint(ParkPoint parkPoint, int mapType);

    /**
     * 停车点数据校准
     *
     * @param parkPoints
     * @param mapType
     */
    void celibrateParkPoint(List<ParkPoint> parkPoints, int mapType);

    /**
     * 通用校准接口
     *
     * @param point
     * @param from
     * @param to
     * @return
     */
    Point calibrate(Point point, Integer from, Integer to);

    /**
     * 校准电子围栏
     *
     * @param geo
     * @param oriMapType
     * @param targetMapType
     */
    void calGeo(Geo geo, Integer oriMapType, Integer targetMapType);

    /**
     * 校准停车点
     *
     * @param parkPoint
     * @param oriMapType
     * @param targetMapType
     */
    void calParkPoint(ParkPoint parkPoint, Integer oriMapType, Integer targetMapType);

    /**
     * 校准禁行区
     *
     * @param forbidden
     * @param oriMapType
     * @param targetMapType
     */
    void calForbidden(Forbidden forbidden, Integer oriMapType, Integer targetMapType);

    /**
     * 禁停区校准
     *
     * @param prohibitAreas
     * @param mapType
     */
    void celibrateProhibit(List<ProhibitArea> prohibitAreas, int mapType);

    /**
     * 通用校准接口（原始坐标、百度坐标、谷歌坐标之间相互转换）
     *
     * @param point
     * @param from
     * @param to
     * @return
     */
    Point commonCalibrate(Point point, Integer from, Integer to);

    /**
     * 经纬度合集转化
     *
     * @param points
     * @param from
     * @param to
     * @return
     */
    String calVert(String points, Integer from, Integer to);
}  